This invention relates generally to domino circuits, and more particularly to power consumption reduction for domino circuits.
The speeds at which electronic circuits are required to perform is constantly increasing. As the overall processor speed becomes faster, the need for faster internal circuitry has increased. The need for high speed circuits is not limited to processors, but applies everywhere from cellular phones to digital broadcast receiver systems. Many hand held devices use application specific integrated circuits (ASICs) and they must approach microprocessor frequency targets but have an even tighter area budget. A way to increase the speed of a circuit is to use domino circuits (dynamic logic circuits) instead of static CMOS circuits. A domino circuit includes one or more domino gates. A typical domino gate has a precharge transistor, an evaluate transistor, and an inverting buffer. Domino circuits are generally faster than circuits implemented in CMOS static circuits. For example, domino circuits typically account for thirty percent of the logic transistors of a microprocessor.
The power consumption of domino circuits is attributed to precharging every cycle and to dual-rail logic duplication. A domino functional unit block typically dissipates up to four times as much power as an equivalent static functional unit block. These power problems are magnified with the increasing popularity of portable battery operated devices such as cellular phones and laptop computers which must operate at low power consumptions. The ASICs used in these applications are required to operate fast but consume small amounts of power.
The use of domino circuits in high-performance microprocessor design is an efficient way of increasing circuit speed and reducing area. Domino logic allows a single clock to precharge and evaluate a cascade of dynamic logic blocks and requires incorporating a static CMOS inverting buffer at the output of each dynamic logic gate. Despite various area and speed advantages, the inherently non-inverting nature of domino gates requires the implementation of logic network without inverters. Domino circuits typically dissipate four times as much power as an equivalent static circuit.
Currently, a way to convert a logic circuit into an inverter free domino logic circuit is to convert the logic circuit into AND, OR, and NOT gates only. Then, the inverters can be propagated back from the primary outputs towards the inputs by applying simple De Morgan""s laws. Some inverters may not be capable of being propagated all the way to a primary input and will be trapped. Since these inverters cannot be removed, the gate which the inverter is trapped requires duplication to be implemented. This duplication generally causes substantial area and substantial power consumption penalties.
Attempts have been made to reduce the area used by domino circuits but these generally result in relatively large power consumption. What is needed is a way to reduce the power used by domino circuits.
One embodiment of the present invention provides a method for reducing power consumption of a domino circuit. An initial phase assignment for outputs of the domino circuit is generated. A final phase assignment that reduces power consumption of the domino circuit is determined. The final phase assignment is selected from at least one additional phase assignment.
In another embodiment, the present invention provides a method for reducing power consumption of a domino circuit. An initial output phase assignment for outputs of the domino circuit is generated. A first power consumption of the domino circuit using the initial output phase assignment output of the circuit is computed. A plurality of additional output phase assignments is generated. For each one of the plurality of additional output phase assignments a power consumption of the domino circuit using each of the plurality additional output phase assignments is evaluated. For each one of the plurality of additional output phase assignments, the power consumption of the domino circuit using each of the plurality additional output phase assignments is compared to the first power consumption. For each one of the plurality of additional output phase assignments, either the initial output phase assignment or one of the plurality additional output phase assignments is selected.